//
//  WERegisterViewController.swift
//  iiatn
//
//  Created by mnine on 18/4/1.
//  Copyright © 2018年 mnine. All rights reserved.
//

import UIKit
import SVProgressHUD
import Alamofire

class WERegisterViewController: itBaseViewController {

    
    @IBOutlet weak var emaillabel: UILabel!
    
    @IBOutlet weak var email: UITextField!
    
    @IBOutlet weak var code: UITextField!
    
    @IBOutlet weak var getcode: UIButton!
    
    @IBOutlet var xieyi: UIButton!
    
    @IBOutlet weak var nxt: UIButton!
    
    @IBOutlet weak var tishi: UILabel!
    
    var mcode: Int?
    
    var countdownTimer: Timer?
    
    var remainingSeconds: Int = 0 {
        willSet {
            getcode.setTitle("\(newValue) s", for: .normal)
            
            if newValue <= 0 {
                getcode.setTitle("验证码", for: .normal)
                isCounting = false
            }
        }
    }
    
    
    var isCounting = false {
        willSet {
            if newValue {
                countdownTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTime), userInfo: nil, repeats: true)
                remainingSeconds = 30
                
            } else {
                countdownTimer?.invalidate()
                countdownTimer = nil
            }
            
            getcode.isEnabled = !newValue
        }
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()

        if self.navigationItem.title == "邮箱找回" {
            xieyi.isHidden = true
            nxt.y = 260
        }
        // 设置
        setupBarButtonItem()
        setstyle()
        setdosth()
    }

    override func setupNav() {
        view.backgroundColor = UIColor.white
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    

    func setdosth(){
        getcode.addTarget(self, action: #selector(getCode), for: .touchUpInside)
        nxt.addTarget(self, action: #selector(nextGo), for: .touchUpInside)
        xieyi.addTarget(self, action: #selector(xyAlert), for: .touchUpInside)
    }
    
    func getCode(){
        // 首先判断是否为一个email
        if (Validate.email(email.text!).isRight) {
            // 倒计时变化
            isCounting = true
            // 生成code 开始发送验证码
            mcode = WNetwork.shareNetworkTool.randomIn(min: 1000, max: 9999)
            WNetwork.shareNetworkTool.emailCode(email: email.text!, code: String(describing: mcode!))
        }else {
            SVProgressHUD.showError(withStatus: "邮箱格式不对！")
        }
        
    }
    func nextGo(){
        if(email.text!.isEmpty){
            SVProgressHUD.showError(withStatus: "邮箱不能为空！")
        }else if(code.text!.isEmpty){
            SVProgressHUD.showError(withStatus: "邮箱验证不能为空！")
        }else{
            
            if self.navigationItem.title == "邮箱找回" {
                if self.code.text! == String(describing: self.mcode!) {
                    print("code yes,go nxt")
                    self.topwde()
                } else {
                    print("code no")
                    SVProgressHUD.showError(withStatus: "邮箱验证码不匹配！")
                }
            }else{
                
                let alertController = UIAlertController(title: " ",
                                                        message: "您必须同意《国际投资贸易网用户协议》，继续下一步？", preferredStyle: .alert)
                let cancelAction = UIAlertAction(title: "取消", style: .cancel, handler: nil)
                let okAction = UIAlertAction(title: "同意", style: .default, handler: {
                    action in
                    // 验证code是否正确
                    // 不正确提示，正确开始进入下一步 传入 email WPasswordEViewController
                    if self.code.text! == String(describing: self.mcode!) {
                        print("code yes,go nxt")
                        self.topwde()
                    } else {
                        print("code no")
                        SVProgressHUD.showError(withStatus: "邮箱验证码不匹配！")
                    }
                })
                alertController.addAction(cancelAction)
                alertController.addAction(okAction)
                self.present(alertController, animated: true, completion: nil)
                
            }
            
        }
    }

    // MARK: - 设置导航栏按钮
    private func setupBarButtonItem() {
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "取消", style: .plain, target: self, action:
            #selector(cancelButtonClick))
    }
    func cancelButtonClick() {
        dismiss(animated: true, completion: nil)
    }
    
    
    // MARK: - 设置倒计时
    func updateTime(timer: Timer) {
        remainingSeconds -= 1
    }
    
    
    // MARK: - 设置风格
    func setstyle(){
        // 风格设置
        tishi.x = (SCREENW - tishi.width)/2
        
        getcode.x = SCREENW - getcode.width - emaillabel.x
        nxt.width = SCREENW - nxt.x*2
        
        getcode.layer.cornerRadius = getcode.height * 0.2
        getcode.layer.masksToBounds = true
        getcode.layer.rasterizationScale = UIScreen.main.scale
        
        nxt.layer.cornerRadius = nxt.height * 0.2
        nxt.layer.masksToBounds = true
        nxt.layer.rasterizationScale = UIScreen.main.scale
        
        email.layer.borderWidth = 0.8
        email.layer.borderColor = UIColor.gray.cgColor
        email.layer.cornerRadius = email.height * 0.2
        email.layer.masksToBounds = true
        
        code.layer.borderWidth = 0.8
        code.layer.borderColor = UIColor.gray.cgColor
        code.layer.cornerRadius = code.height * 0.2
        code.layer.masksToBounds = true
    }
    
    func topwde(){
        let VC = WPasswordEViewController()
        if self.navigationItem.title == "邮箱找回" {
            print("邮箱找回")
            VC.title = "重置密码"
        }else {
            print("邮箱注册")
            VC.title = "密码填写"
        }
        VC.memail = email.text!
        let nav = WNavigationController(rootViewController: VC)
        present(nav, animated: true, completion: nil)
    }

    // MARK: - 协议
    func xyAlert(){
        var msg = "    欢迎您访问国际贸易投资网。请您仔细阅读本协议， 一旦您注册成功或使用网站，您将被视为已经仔细阅读并同意遵守本协议和中国贸易投资 网不时发布的规则或特别条款，特别是本协议中限制您权利、 免除国际贸易投资网责任的条款内容。如果您对本协议的任何条款表示异议， 您可以选择不使用国际贸易投资网。\n\n"
        msg = msg + "    对本协议、规则或特别条款的内容进行修改，国际贸易投资网将在网站公示通告全体用户，您理解并同意就此国际贸易投资网将不再另行通知您，您应不时地查看这些修改，以便正确使用网站。您在经国际贸易投资网修改的条款发布之后继续使用网站，即表示您同意且接受该等修改。在适用法律允许的最大范围内，国际贸易投资网保留对本协议、规则或特别条款的最终解释权。\n\n"
        msg = msg + "    用户注册成功后，国际贸易投资网将给予每个用户一个用户帐号及相应的密码，该用户帐号和密码由用户负责妥善保管；任何以该用户账号从事的活动，均视为该用户本人的活动或已获得该用户的合法授权。如果您发现自己的用户信息，尤其是网站用户名及密码发生泄露，请您立即联络我们，以便我们采取相应措施。\n\n"
        msg = msg + "    用户应当对以其用户帐号进行的所有活动和事件负法律责任。用户须对在国际贸易投资网注册及发布的信息的真实性、合法性、有效性承担全部责任，用户不得冒充他人；不得利用他人的名义发布任何信息；不得恶意使用注册帐号发布非法信息；否则国际贸易投资网有权立即停止提供服务，收回其帐号并由用户独自承担由此而产生的一切法律责任。\n\n"
        msg = msg + "    您应根据本协议的各项条款，正确、适当地使用服务，如您违反本协议中的任何条款，本网站有权删除您发布的信息，并视情节轻重对您采取包括但不限于警告、暂停、封禁账号的措施。若您的账号被暂停、封禁，您可以向本网站申诉。如该暂停、封禁错误或您已采取了相应的措施纠正了您违反本协议的情形，本网站将取消对您账号的暂停或封禁。您应当按照本协议规定的方式使用网站及服务，并且同时遵守全部适用于服务的地方法律、国家法律、国际法律和/或监管机构的法令。\n\n"
        msg = msg + "    如果您在网站中或通过本网站服务展示或发表任何内容，即表明您就此授予本网站使用、修改、发行、传播、翻译、改编等法律允许范围内公开显示、复制和传播此类内容的许可。\n\n"
        msg = msg + "    您不得利用服务从事如下行为： 发布、传播如下信息：（1）反对宪法所确定的基本原则的；（2）危害国家安全，颠覆国家政权，破坏国家统一的；（3）损害国家荣誉和利益的；（4）煽动民族仇恨、民族歧视，破坏民族团结的；（5）破坏国家宗教政策，宣扬邪教和封建迷信的；（6）散布谣言，扰乱社会秩序，破坏社会稳定的；（7）散布色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的；（8）发送垃圾邮件或者其他违反适用法律的，重复的或未经同意发送的信息，包括但不限于注册信息、身份认证信息、贸易商机、投资项目、联系信息、评论性信息或其他信息；（9）发送或存储任何侵权、淫秽、威胁、诽谤或其他非法或引起侵权行为责任的材料；（10）发送或存储包含软件病毒、蠕虫、特洛伊木马或其他有害的计算机代码、文件、脚本、代理或程序的材料；（11）干扰或破坏服务的完整性或性能或其中所包含的数据；（12）试图未经授权地访问服务或其相关系统或网络，监测和/或复制网站的任何部分，包括但不限于使用代理、机器人、脚本或网络爬虫程序；（13）其他违反国家法律法规、干扰网站正常运营、其他用户对服务的使用，或损害本网站利益的行为。\n\n"
        msg = msg + "    如您的行为违反国家法律法规和本协议，本网站除可以采取前述删除信息、断开连接、暂停服务、封禁账号外，同时有权依法向有关部门报告。\n\n"
        msg = msg + "    您已知悉，本网站可以根据实际情况自行决定您在网站上所储存信息的最长储存期限，以及在服务器上为您分配数据的最大存储空间。您应当根据自己的需要自行备份网站上的相关数据。如您停止使用网站服务超过六个月或网站服务终止，本网站有权从服务器上永久地删除您的用户信息。服务停止、终止后， 本网站没有义务向您返还任何数据。"
        let alertController = UIAlertController(title: "国际投资贸易网用户协议",
                                                message: msg, preferredStyle: .alert)
        let okAction = UIAlertAction(title: "阅读完毕", style: .default, handler: {
            action in
            print("阅读完毕")
        })
        alertController.addAction(okAction)
        
        let paragraphStyle = NSMutableParagraphStyle() // 注意一定要是mutable!
        paragraphStyle.alignment = NSTextAlignment.left // 居左
        let messageText = NSMutableAttributedString(
            string: msg,
            attributes: [
                NSParagraphStyleAttributeName: paragraphStyle,
                NSFontAttributeName : UIFont.systemFont(ofSize: 14)//, // 设置一下字号
                //NSForegroundColorAttributeName : COLOR_F
            ]
        )
        alertController.setValue(messageText, forKey: "attributedMessage") // 通过KVC 进行修改
        
        let height:NSLayoutConstraint = NSLayoutConstraint(item: alertController.view, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: self.view.frame.height * 0.80)
        alertController.view.addConstraint(height);
        
        self.present(alertController, animated: true, completion: nil)
    }
}
